<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css" />
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/iconfont.css" />
    <link rel="stylesheet" href="css/main.css" />
    <script src="./libs/jquery-1.12.4.min.js"></script>
    <script src="./libs/bootstrap/js/bootstrap.min.js"></script>
    <!-- 引入模板引擎js文件 -->
    <script src="./libs/template-web.js"></script>
  </head>

  <body>
    <div class="container-fluid">
      <div class="common_title">
        文章类别管理
      </div>
      <div class="container-fluid common_con">
        <table
          class="table table-striped table-bordered table-hover mp20 category_table"
        >
          <thead>
            <tr>
              <th>名称</th>
              <th>Slug</th>
              <th class="text-center" width="100">操作</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>奇趣事</td>
              <td>funny</td>
              <td class="text-center">
                <a
                  href="javascript:void(0)"
                  class=" btn btn-info btn-xs"
                  data-target="#myModal"
                  >编辑</a
                >
                <a href="javascript:void(0)" class="btn btn-danger btn-xs"
                  >删除</a
                >
              </td>
            </tr>
          </tbody>
          <tfoot>
            <tr>
              <td colspan="3" class="text-center">
                <a
                  href="javascript:void(0)"
                  class="btn btn-success"
                  id="xinzengfenlei"
                  data-toggle="modal"
                  data-target="#myModal"
                  >新增分类</a
                >
              </td>
            </tr>
          </tfoot>
        </table>
      </div>
    </div>
    <!-- 模态框 -->
    <div
      class="modal fade"
      id="myModal"
      tabindex="-1"
      role="dialog"
      aria-labelledby="exampleModalLabel"
    >
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <button
              type="button"
              class="close"
              data-dismiss="modal"
              aria-label="Close"
            >
              <span aria-hidden="true">&times;</span>
            </button>
            <h4 class="modal-title" id="exampleModalLabel">New message</h4>
          </div>
          <div class="modal-body">
            <form>
              <div class="form-group">
                <label for="recipient-name" class="control-label"
                  >分类名称:</label
                >
                <input type="text" class="form-control" id="recipient-name" />
              </div>
              <div class="form-group">
                <label for="message-text" class="control-label"
                  >分类别名：</label
                >
                <input class="form-control" id="message-text" />
              </div>
            </form>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">
              关闭
            </button>
            <button type="button" class="btn btn-primary btn-change">
              Send message
            </button>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>
<script src="./libs/https.js"></script>
<script type="text/html" id="tpl_category">
  {{each}}
  <tr>
      <td>{{$value.name}}</td>
      <td>{{$value.slug}}</td>
      <td class="text-center">
        <a
          href="javascript:void(0)"
          data-toggle="modal"
          data-target="#myModal"
          class=" btn btn-info btn-xs"
          dataid="{{$value.id}}"
          >编辑</a
        >
        <a href="javascript:void(0)" class="btn btn-danger btn-xs btn-del" dataid="{{$value.id}}"
          >删除</a
        >
      </td>
    </tr>
  {{/each}}
</script>
<script>
  $(function () {
    // 1. 发起ajax请求,获得文章分类数据
    function loadData () {
      $.ajax({
        type: 'get',
        url: BigNew.category_list,
        success: function (backData) {
          if (backData.code == 200) {
            //   console.log(backData)
            let data = backData.data
            // 2. 利用模板引擎,生成标签结构
            let htmlStr = template('tpl_category', data)
            $('tbody').html(htmlStr)
          }
        }
      })
    }
    // 首次加载
    loadData()

    // 3. 区分模态框的来源!!!!!
    // 新增/编辑
    // 监听模态框显示之后的事件
    // e.relatedTarget: 指向触发的元素(触发的按钮)
    $('#myModal').on('show.bs.modal', function (e) {
      // 4. 利用触发元素区分来源
      if ($(e.relatedTarget).text() == '新增分类') {
        // 通过新增按钮触发
        $('.modal-title').text('新增分类')
        $('.btn-change').text('新增')

        // 清空输入框
        $('#message-text').val('')
        $('#recipient-name').val('')
      } else {
        // 通过编辑按钮触发
        $('.btn-change').text('编辑')
        $('.modal-title').text('编辑分类')

        // 5. 获得指定的类别数据,加载结构
        // 把dataid变成全局变量
        window.dataid = $(e.relatedTarget).attr('dataid')
        // 6. 根据dataid发起ajax请求
        $.ajax({
          type: 'get',
          url: BigNew.category_search,
          data: {
            id: dataid
          },
          success: function (backData) {
            // console.log(backData)
            // 7. 渲染结构
            $('#message-text').val(backData.data[0].name)
            $('#recipient-name').val(backData.data[0].slug)
          }
        })
      }
    })

    // 7. 给模态框按钮设置点击事件
    $('.btn-change').on('click', function (e) {
      // 新增分类
      // 9. 获得分类名称与分类别名
      let name = $('#recipient-name')
        .val()
        .trim()
      let slug = $('#message-text')
        .val()
        .trim()

      // 8. 区分按钮的功能
      if ($(this).text() == '新增') {
        if (name == '' || slug == '') {
          alert('请填写完整！')
          return
        }
        // 10. 发起ajax请求,添加分类数据
        $.ajax({
          type: 'post',
          url: BigNew.category_add,
          data: {
            name: name,
            slug: slug
          },
          success: function (backData) {
            // console.log(backData)
            if ((backData.code = 201)) {
              // 11. 关闭模态框,重新获得页面数据
              $('#myModal').modal('hide') // 代码调用关闭模态框
              loadData()
            }
          }
        })
      } else {
        if (name == '' || slug == '') {
          alert('请填写完整！')
          return
        }
        // 发起ajax请求,修改分类数据
        $.ajax({
          type: 'post',
          url: BigNew.category_edit,
          data: {
            name: name,
            slug: slug,
            id: dataid
          },
          success: function (backData) {
            console.log(backData)
            if ((backData.code = 200)) {
              // 11. 关闭模态框,重新获得页面数据
              $('#myModal').modal('hide') // 代码调用关闭模态框
              loadData()
            }
          }
        })
      }
    })

    //   14.给删除按钮添加点击事件
    $('tbody').on('click', '.btn-del', function (e) {
      let id = $(this).attr('dataid')
      // 15. 发起ajax请求,删除指定的数据
      $.ajax({
        type: 'post',
        url: BigNew.category_delete,
        data: {
          id: id
        },
        success: function (backData) {
          if (backData.code == 204) {
            alert(backData.msg)
            loadData()
          }
        }
      })
    })
  })
</script>
